package com.yyq.studyList;

import com.sun.org.apache.xpath.internal.operations.String;
import com.yyq.javastudy.Persion;
import org.junit.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

/**
 * @author yyq
 * @create 2021-08-06 15:01
 * List除了从Collection集合继承的方法外，List 集合里添加了一些根据索引来
 * 操作集合元素的方法。
 * void add(int index, Object ele):在index位置插入ele元素
 * boolean addAll(int index, Collection eles):从index位置开始将eles中
 * 的所有元素添加进来
 * Object get(int index):获取指定index位置的元素
 * int indexOf(Object obj):返回obj在集合中首次出现的位置
 * int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置
 * Object remove(int index):移除指定index位置的元素，并返回此元素
 * Object set(int index, Object ele):设置指定index位置的元素为ele
 * List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex
 * 位置的子集合
 */
public class ListTest {
    @Test
    public void test(){
        ArrayList list=new ArrayList();
        list.add("123");
        list.add(123);
        list.add(new Persion(22,"YYQ"));

        System.out.println(list);

        //void add(int index, Object ele):在index位置插入ele元素
        list.add(1,"1111");


        //boolean addAll(int index, Collection eles):从index位置开始将eles中
        // 的所有元素添加进来
        List list_1= Arrays.asList(222,222);
        list.addAll(1,list_1);


//        Object get(int index):获取指定index位置的元素
        System.out.println(list.get(0));

//        int indexOf(Object obj):返回obj在集合中首次出现的位置 没有返回-1
        System.out.println("123第一次出现"+list.indexOf(123));

//        int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置
        System.out.println("123最后一次出现"+list.lastIndexOf(123));

//        Object remove(int index):移除指定index位置的元素，并返回此元素
        Object remove = list.remove(0);
        System.out.println(remove.toString()+list);

//        Object set(int index, Object ele):设置指定index位置的元素为ele
        list.set(0,11111);

//        List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex
//        位置的子集合  前闭后开
        List list1 = list.subList(0, 1);
        System.out.println(list1);

        //遍历一 迭代器
        Iterator iterator = list.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
        //遍历二 增强for循环
        for (Object o : list) {
            System.out.println(o);
        }
        //遍历三 普通循环  因为有了索引值
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

    }
}
